home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 7 / Amiga Format AFCD07 (Dec 1996, Issue 91).iso / serious / shareware / programming / emacs-complete / fsf / emacs / lisp / blessmail.el < prev    next >
Lisp/Scheme  |  1994-05-12  |  2KB  |  69 lines

  1. ;;; blessmail.el --- Decide whether movemail needs special privileges.
  2.  
  3. ;;; Copyright (C) 1994 Free Software Foundation, Inc.
  4.  
  5. ;; Maintainer: FSF
  6. ;; Keywords: internal
  7.  
  8. ;; This file is part of GNU Emacs.
  9.  
  10. ;; GNU Emacs is free software; you can redistribute it and/or modify
  11. ;; it under the terms of the GNU General Public License as published by
  12. ;; the Free Software Foundation; either version 2, or (at your option)
  13. ;; any later version.
  14.  
  15. ;; GNU Emacs is distributed in the hope that it will be useful,
  16. ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18. ;; GNU General Public License for more details.
  19.  
  20. ;; You should have received a copy of the GNU General Public License
  21. ;; along with GNU Emacs; see the file COPYING.  If not, write to
  22. ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  23.  
  24. ;;; Commentary:
  25.  
  26. ;; This is loaded into a bare Emacs to create the blessmail script,
  27. ;; which (on systems that need it) is used during installation
  28. ;; to give appropriate permissions to movemail.
  29. ;;
  30. ;; It has to be done from lisp in order to be sure of getting the
  31. ;; correct value of rmail-spool-directory.
  32.  
  33. ;;; Code:
  34.  
  35. ;; These are no longer needed because we run this in emacs instead of temacs.
  36. ;; (message "Using load-path %s" load-path)
  37. ;; (load "paths.el")
  38. ;; It is not safe to load site-init.el here, because it might have things in it
  39. ;; that won't load properly unless all the rest of Emacs is loaded.
  40.  
  41. (let ((dirname (directory-file-name rmail-spool-directory))
  42.       linkname attr modes)
  43.   ;; Check for symbolic link
  44.   (while (setq linkname (file-symlink-p dirname))
  45.     (setq dirname (if (file-name-absolute-p linkname)
  46.               linkname
  47.             (concat (file-name-directory dirname) linkname))))
  48.   (insert "#!/bin/sh\n")
  49.   (setq attr (file-attributes dirname))
  50.   (if (not (eq t (car attr)))
  51.       (insert (format "echo %s is not a directory\n" rmail-spool-directory))
  52.     (setq modes (nth 8 attr))
  53.     (cond ((= ?w (aref modes 8))
  54.        ;; Nothing needs to be done.
  55.        )
  56.       ((= ?w (aref modes 5))
  57.        (insert "chgrp " (number-to-string (nth 3 attr))
  58.            " $* && chmod g+s $*\n"))
  59.       ((= ?w (aref modes 2))
  60.        (insert "chown " (number-to-string (nth 2 attr))
  61.            " $* && chmod u+s $*\n"))
  62.       (t
  63.        (insert "chown root $* && chmod u+s $*\n"))))
  64.   (insert "echo mail directory = " dirname "\n"))
  65. (write-region (point-min) (point-max) "blessmail")
  66. (kill-emacs)
  67.  
  68. ;;; blessmail.el ends here
  69.